package com.sugar.follow.up.module.business.controller.admin.userpatient.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.time.LocalDate;
import java.util.*;
import javax.validation.constraints.*;

@Schema(description = "管理后台 - 就诊人新增/修改 Request VO")
@Data
public class UserPatientSaveReqVO {

    @Schema(description = "就诊人ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "25165")
    private Long id;

    @Schema(description = "姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
    @NotEmpty(message = "姓名不能为空")
    private String name;

    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "手机号不能为空")
    private String mobile;

    @Schema(description = "身份证号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "身份证号不能为空")
    private String idCard;

    @Schema(description = "出生日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "出生日期不能为空")
    private LocalDate birthday;

    @Schema(description = "省市区（逗号分隔）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "省市区不能为空")
    @Size(min = 3, message = "省市区不能为空")
    private List<String> location;

    @Schema(description = "详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "详细地址不能为空")
    private String locationDetail;

    @Schema(description = "ID号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "ID号不能为空")
    private String idCode;

    @Schema(description = "确诊年龄", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "确诊年龄不能为空")
    private String confirmedDiagnosisAge;

    @Schema(description = "特病症（0否 1是）", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotNull(message = "特病症不能为空")
    private Boolean specialIllness;

    @Schema(description = "心脑血管系统既往病史（字典：business_user_patient_xnxg_type）")
    private List<String> xnxgHistory;

    @Schema(description = "神经系统既往病史（字典：business_user_patient_sj_type）")
    private List<String> sjHistory;

    @Schema(description = "呼吸系统既往病史（字典：business_user_patient_hx_type）")
    private List<String> hxHistory;

    @Schema(description = "消化系统既往病史（字典：business_user_patient_xh_type）")
    private List<String> xhHistory;

    @Schema(description = "血液系统既往病史（字典：business_user_patient_xy_type）")
    private List<String> xyHistory;

    @Schema(description = "内分泌系统既往病史（字典：business_user_patient_nfm_type）")
    private List<String> nfmHistory;

    @Schema(description = "其它既往病史")
    private String otherHistory;

    @Schema(description = "常用药物")
    private String commonlyUsedDrugs;

    @Schema(description = "主要病症")
    private String mainSymptoms;

    @Schema(description = "初始：tPSA（ng／ml）")
    private String initialTpsa;

    @Schema(description = "睾酮（nmol／L）")
    private String testosterone;

    @Schema(description = "MRI")
    private String mri;

    @Schema(description = "穿刺病理")
    private String puncturePathology;

    @Schema(description = "临床诊断")
    private String clinicalDiagnosis;

    @Schema(description = "危险分层")
    private String riskStratification;

    @Schema(description = "首选治疗方案（字典：business_user_patient_preferred_plan）")
    private Integer preferredPlan;

    @Schema(description = "风险等级（字典：business_user_patient_risk_level）")
    private String riskLevel;

    @Schema(description = "就诊人标签")
    private String[][] tags;

    @Schema(description = "备注")
    private String remark;
}